/**
 */
package org.cmoine.perspectiveshare.model;

import org.eclipse.emf.common.util.EList;

import org.eclipse.emf.ecore.EObject;

/**
 * <!-- begin-user-doc -->
 * A representation of the model object '<em><b>Perspective Type</b></em>'.
 * <!-- end-user-doc -->
 *
 * <p>
 * The following features are supported:
 * <ul>
 *   <li>{@link org.cmoine.perspectiveshare.model.PerspectiveType#getDescriptor <em>Descriptor</em>}</li>
 *   <li>{@link org.cmoine.perspectiveshare.model.PerspectiveType#getWindow <em>Window</em>}</li>
 *   <li>{@link org.cmoine.perspectiveshare.model.PerspectiveType#getAlwaysOnActionSet <em>Always On Action Set</em>}</li>
 *   <li>{@link org.cmoine.perspectiveshare.model.PerspectiveType#getAlwaysOffActionSet <em>Always Off Action Set</em>}</li>
 *   <li>{@link org.cmoine.perspectiveshare.model.PerspectiveType#getShowViewAction <em>Show View Action</em>}</li>
 *   <li>{@link org.cmoine.perspectiveshare.model.PerspectiveType#getShowInTime <em>Show In Time</em>}</li>
 *   <li>{@link org.cmoine.perspectiveshare.model.PerspectiveType#getNewWizardAction <em>New Wizard Action</em>}</li>
 *   <li>{@link org.cmoine.perspectiveshare.model.PerspectiveType#getPerspectiveAction <em>Perspective Action</em>}</li>
 *   <li>{@link org.cmoine.perspectiveshare.model.PerspectiveType#getHideToolbarItemId <em>Hide Toolbar Item Id</em>}</li>
 *   <li>{@link org.cmoine.perspectiveshare.model.PerspectiveType#getView <em>View</em>}</li>
 *   <li>{@link org.cmoine.perspectiveshare.model.PerspectiveType#getFastViews <em>Fast Views</em>}</li>
 *   <li>{@link org.cmoine.perspectiveshare.model.PerspectiveType#getFastViewBars <em>Fast View Bars</em>}</li>
 *   <li>{@link org.cmoine.perspectiveshare.model.PerspectiveType#getLayout <em>Layout</em>}</li>
 *   <li>{@link org.cmoine.perspectiveshare.model.PerspectiveType#getEditorAreaTrimState <em>Editor Area Trim State</em>}</li>
 *   <li>{@link org.cmoine.perspectiveshare.model.PerspectiveType#getEditorAreaVisible <em>Editor Area Visible</em>}</li>
 *   <li>{@link org.cmoine.perspectiveshare.model.PerspectiveType#getFixed <em>Fixed</em>}</li>
 *   <li>{@link org.cmoine.perspectiveshare.model.PerspectiveType#getVersion <em>Version</em>}</li>
 * </ul>
 * </p>
 *
 * @see org.cmoine.perspectiveshare.model.PerspectivesPackage#getPerspectiveType()
 * @model extendedMetaData="name='perspective_._type' kind='elementOnly'"
 * @generated
 */
public interface PerspectiveType extends EObject {
    /**
     * Returns the value of the '<em><b>Descriptor</b></em>' containment reference.
     * <!-- begin-user-doc -->
     * <p>
     * If the meaning of the '<em>Descriptor</em>' containment reference isn't clear,
     * there really should be more of a description here...
     * </p>
     * <!-- end-user-doc -->
     * @return the value of the '<em>Descriptor</em>' containment reference.
     * @see #setDescriptor(DescriptorType)
     * @see org.cmoine.perspectiveshare.model.PerspectivesPackage#getPerspectiveType_Descriptor()
     * @model containment="true" required="true"
     *        extendedMetaData="kind='element' name='descriptor' namespace='##targetNamespace'"
     * @generated
     */
    DescriptorType getDescriptor();

    /**
     * Sets the value of the '{@link org.cmoine.perspectiveshare.model.PerspectiveType#getDescriptor <em>Descriptor</em>}' containment reference.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @param value the new value of the '<em>Descriptor</em>' containment reference.
     * @see #getDescriptor()
     * @generated
     */
    void setDescriptor(DescriptorType value);

    /**
     * Returns the value of the '<em><b>Window</b></em>' containment reference.
     * <!-- begin-user-doc -->
     * <p>
     * If the meaning of the '<em>Window</em>' containment reference isn't clear,
     * there really should be more of a description here...
     * </p>
     * <!-- end-user-doc -->
     * @return the value of the '<em>Window</em>' containment reference.
     * @see #setWindow(WindowType)
     * @see org.cmoine.perspectiveshare.model.PerspectivesPackage#getPerspectiveType_Window()
     * @model containment="true" required="true"
     *        extendedMetaData="kind='element' name='window' namespace='##targetNamespace'"
     * @generated
     */
    WindowType getWindow();

    /**
     * Sets the value of the '{@link org.cmoine.perspectiveshare.model.PerspectiveType#getWindow <em>Window</em>}' containment reference.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @param value the new value of the '<em>Window</em>' containment reference.
     * @see #getWindow()
     * @generated
     */
    void setWindow(WindowType value);

    /**
     * Returns the value of the '<em><b>Always On Action Set</b></em>' containment reference list.
     * The list contents are of type {@link org.cmoine.perspectiveshare.model.AlwaysOnActionSetType}.
     * <!-- begin-user-doc -->
     * <p>
     * If the meaning of the '<em>Always On Action Set</em>' containment reference list isn't clear,
     * there really should be more of a description here...
     * </p>
     * <!-- end-user-doc -->
     * @return the value of the '<em>Always On Action Set</em>' containment reference list.
     * @see org.cmoine.perspectiveshare.model.PerspectivesPackage#getPerspectiveType_AlwaysOnActionSet()
     * @model containment="true"
     *        extendedMetaData="kind='element' name='alwaysOnActionSet' namespace='##targetNamespace'"
     * @generated
     */
    EList<AlwaysOnActionSetType> getAlwaysOnActionSet();

    /**
     * Returns the value of the '<em><b>Always Off Action Set</b></em>' containment reference list.
     * The list contents are of type {@link org.cmoine.perspectiveshare.model.AlwaysOffActionSetType}.
     * <!-- begin-user-doc -->
     * <p>
     * If the meaning of the '<em>Always Off Action Set</em>' containment reference list isn't clear,
     * there really should be more of a description here...
     * </p>
     * <!-- end-user-doc -->
     * @return the value of the '<em>Always Off Action Set</em>' containment reference list.
     * @see org.cmoine.perspectiveshare.model.PerspectivesPackage#getPerspectiveType_AlwaysOffActionSet()
     * @model containment="true"
     *        extendedMetaData="kind='element' name='alwaysOffActionSet' namespace='##targetNamespace'"
     * @generated
     */
    EList<AlwaysOffActionSetType> getAlwaysOffActionSet();

    /**
     * Returns the value of the '<em><b>Show View Action</b></em>' containment reference list.
     * The list contents are of type {@link org.cmoine.perspectiveshare.model.ShowViewActionType}.
     * <!-- begin-user-doc -->
     * <p>
     * If the meaning of the '<em>Show View Action</em>' containment reference list isn't clear,
     * there really should be more of a description here...
     * </p>
     * <!-- end-user-doc -->
     * @return the value of the '<em>Show View Action</em>' containment reference list.
     * @see org.cmoine.perspectiveshare.model.PerspectivesPackage#getPerspectiveType_ShowViewAction()
     * @model containment="true"
     *        extendedMetaData="kind='element' name='show_view_action' namespace='##targetNamespace'"
     * @generated
     */
    EList<ShowViewActionType> getShowViewAction();

    /**
     * Returns the value of the '<em><b>Show In Time</b></em>' containment reference list.
     * The list contents are of type {@link org.cmoine.perspectiveshare.model.ShowInTimeType}.
     * <!-- begin-user-doc -->
     * <p>
     * If the meaning of the '<em>Show In Time</em>' containment reference list isn't clear,
     * there really should be more of a description here...
     * </p>
     * <!-- end-user-doc -->
     * @return the value of the '<em>Show In Time</em>' containment reference list.
     * @see org.cmoine.perspectiveshare.model.PerspectivesPackage#getPerspectiveType_ShowInTime()
     * @model containment="true"
     *        extendedMetaData="kind='element' name='show_in_time' namespace='##targetNamespace'"
     * @generated
     */
    EList<ShowInTimeType> getShowInTime();

    /**
     * Returns the value of the '<em><b>New Wizard Action</b></em>' containment reference list.
     * The list contents are of type {@link org.cmoine.perspectiveshare.model.NewWizardActionType}.
     * <!-- begin-user-doc -->
     * <p>
     * If the meaning of the '<em>New Wizard Action</em>' containment reference list isn't clear,
     * there really should be more of a description here...
     * </p>
     * <!-- end-user-doc -->
     * @return the value of the '<em>New Wizard Action</em>' containment reference list.
     * @see org.cmoine.perspectiveshare.model.PerspectivesPackage#getPerspectiveType_NewWizardAction()
     * @model containment="true"
     *        extendedMetaData="kind='element' name='new_wizard_action' namespace='##targetNamespace'"
     * @generated
     */
    EList<NewWizardActionType> getNewWizardAction();

    /**
     * Returns the value of the '<em><b>Perspective Action</b></em>' containment reference list.
     * The list contents are of type {@link org.cmoine.perspectiveshare.model.PerspectiveActionType}.
     * <!-- begin-user-doc -->
     * <p>
     * If the meaning of the '<em>Perspective Action</em>' containment reference list isn't clear,
     * there really should be more of a description here...
     * </p>
     * <!-- end-user-doc -->
     * @return the value of the '<em>Perspective Action</em>' containment reference list.
     * @see org.cmoine.perspectiveshare.model.PerspectivesPackage#getPerspectiveType_PerspectiveAction()
     * @model containment="true"
     *        extendedMetaData="kind='element' name='perspective_action' namespace='##targetNamespace'"
     * @generated
     */
    EList<PerspectiveActionType> getPerspectiveAction();

    /**
     * Returns the value of the '<em><b>Hide Toolbar Item Id</b></em>' containment reference list.
     * The list contents are of type {@link org.cmoine.perspectiveshare.model.HideToolbarItemIdType}.
     * <!-- begin-user-doc -->
     * <p>
     * If the meaning of the '<em>Hide Toolbar Item Id</em>' containment reference list isn't clear,
     * there really should be more of a description here...
     * </p>
     * <!-- end-user-doc -->
     * @return the value of the '<em>Hide Toolbar Item Id</em>' containment reference list.
     * @see org.cmoine.perspectiveshare.model.PerspectivesPackage#getPerspectiveType_HideToolbarItemId()
     * @model containment="true"
     *        extendedMetaData="kind='element' name='hide_toolbar_item_id' namespace='##targetNamespace'"
     * @generated
     */
    EList<HideToolbarItemIdType> getHideToolbarItemId();

    /**
     * Returns the value of the '<em><b>View</b></em>' containment reference list.
     * The list contents are of type {@link org.cmoine.perspectiveshare.model.ViewType1}.
     * <!-- begin-user-doc -->
     * <p>
     * If the meaning of the '<em>View</em>' containment reference list isn't clear,
     * there really should be more of a description here...
     * </p>
     * <!-- end-user-doc -->
     * @return the value of the '<em>View</em>' containment reference list.
     * @see org.cmoine.perspectiveshare.model.PerspectivesPackage#getPerspectiveType_View()
     * @model containment="true"
     *        extendedMetaData="kind='element' name='view' namespace='##targetNamespace'"
     * @generated
     */
    EList<ViewType1> getView();

    /**
     * Returns the value of the '<em><b>Fast Views</b></em>' containment reference.
     * <!-- begin-user-doc -->
     * <p>
     * If the meaning of the '<em>Fast Views</em>' containment reference isn't clear,
     * there really should be more of a description here...
     * </p>
     * <!-- end-user-doc -->
     * @return the value of the '<em>Fast Views</em>' containment reference.
     * @see #setFastViews(FastViewsType)
     * @see org.cmoine.perspectiveshare.model.PerspectivesPackage#getPerspectiveType_FastViews()
     * @model containment="true" required="true"
     *        extendedMetaData="kind='element' name='fastViews' namespace='##targetNamespace'"
     * @generated
     */
    FastViewsType getFastViews();

    /**
     * Sets the value of the '{@link org.cmoine.perspectiveshare.model.PerspectiveType#getFastViews <em>Fast Views</em>}' containment reference.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @param value the new value of the '<em>Fast Views</em>' containment reference.
     * @see #getFastViews()
     * @generated
     */
    void setFastViews(FastViewsType value);

    /**
     * Returns the value of the '<em><b>Fast View Bars</b></em>' attribute.
     * <!-- begin-user-doc -->
     * <p>
     * If the meaning of the '<em>Fast View Bars</em>' attribute isn't clear,
     * there really should be more of a description here...
     * </p>
     * <!-- end-user-doc -->
     * @return the value of the '<em>Fast View Bars</em>' attribute.
     * @see #setFastViewBars(String)
     * @see org.cmoine.perspectiveshare.model.PerspectivesPackage#getPerspectiveType_FastViewBars()
     * @model dataType="org.eclipse.emf.ecore.xml.type.String" required="true"
     *        extendedMetaData="kind='element' name='fastViewBars' namespace='##targetNamespace'"
     * @generated
     */
    String getFastViewBars();

    /**
     * Sets the value of the '{@link org.cmoine.perspectiveshare.model.PerspectiveType#getFastViewBars <em>Fast View Bars</em>}' attribute.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @param value the new value of the '<em>Fast View Bars</em>' attribute.
     * @see #getFastViewBars()
     * @generated
     */
    void setFastViewBars(String value);

    /**
     * Returns the value of the '<em><b>Layout</b></em>' containment reference.
     * <!-- begin-user-doc -->
     * <p>
     * If the meaning of the '<em>Layout</em>' containment reference isn't clear,
     * there really should be more of a description here...
     * </p>
     * <!-- end-user-doc -->
     * @return the value of the '<em>Layout</em>' containment reference.
     * @see #setLayout(LayoutType)
     * @see org.cmoine.perspectiveshare.model.PerspectivesPackage#getPerspectiveType_Layout()
     * @model containment="true" required="true"
     *        extendedMetaData="kind='element' name='layout' namespace='##targetNamespace'"
     * @generated
     */
    LayoutType getLayout();

    /**
     * Sets the value of the '{@link org.cmoine.perspectiveshare.model.PerspectiveType#getLayout <em>Layout</em>}' containment reference.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @param value the new value of the '<em>Layout</em>' containment reference.
     * @see #getLayout()
     * @generated
     */
    void setLayout(LayoutType value);

    /**
     * Returns the value of the '<em><b>Editor Area Trim State</b></em>' attribute.
     * <!-- begin-user-doc -->
     * <p>
     * If the meaning of the '<em>Editor Area Trim State</em>' attribute isn't clear,
     * there really should be more of a description here...
     * </p>
     * <!-- end-user-doc -->
     * @return the value of the '<em>Editor Area Trim State</em>' attribute.
     * @see #isSetEditorAreaTrimState()
     * @see #unsetEditorAreaTrimState()
     * @see #setEditorAreaTrimState(byte)
     * @see org.cmoine.perspectiveshare.model.PerspectivesPackage#getPerspectiveType_EditorAreaTrimState()
     * @model unsettable="true" dataType="org.eclipse.emf.ecore.xml.type.Byte"
     *        extendedMetaData="kind='attribute' name='editorAreaTrimState' namespace='##targetNamespace'"
     * @generated
     */
    byte getEditorAreaTrimState();

    /**
     * Sets the value of the '{@link org.cmoine.perspectiveshare.model.PerspectiveType#getEditorAreaTrimState <em>Editor Area Trim State</em>}' attribute.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @param value the new value of the '<em>Editor Area Trim State</em>' attribute.
     * @see #isSetEditorAreaTrimState()
     * @see #unsetEditorAreaTrimState()
     * @see #getEditorAreaTrimState()
     * @generated
     */
    void setEditorAreaTrimState(byte value);

    /**
     * Unsets the value of the '{@link org.cmoine.perspectiveshare.model.PerspectiveType#getEditorAreaTrimState <em>Editor Area Trim State</em>}' attribute.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see #isSetEditorAreaTrimState()
     * @see #getEditorAreaTrimState()
     * @see #setEditorAreaTrimState(byte)
     * @generated
     */
    void unsetEditorAreaTrimState();

    /**
     * Returns whether the value of the '{@link org.cmoine.perspectiveshare.model.PerspectiveType#getEditorAreaTrimState <em>Editor Area Trim State</em>}' attribute is set.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @return whether the value of the '<em>Editor Area Trim State</em>' attribute is set.
     * @see #unsetEditorAreaTrimState()
     * @see #getEditorAreaTrimState()
     * @see #setEditorAreaTrimState(byte)
     * @generated
     */
    boolean isSetEditorAreaTrimState();

    /**
     * Returns the value of the '<em><b>Editor Area Visible</b></em>' attribute.
     * <!-- begin-user-doc -->
     * <p>
     * If the meaning of the '<em>Editor Area Visible</em>' attribute isn't clear,
     * there really should be more of a description here...
     * </p>
     * <!-- end-user-doc -->
     * @return the value of the '<em>Editor Area Visible</em>' attribute.
     * @see #isSetEditorAreaVisible()
     * @see #unsetEditorAreaVisible()
     * @see #setEditorAreaVisible(byte)
     * @see org.cmoine.perspectiveshare.model.PerspectivesPackage#getPerspectiveType_EditorAreaVisible()
     * @model unsettable="true" dataType="org.eclipse.emf.ecore.xml.type.Byte"
     *        extendedMetaData="kind='attribute' name='editorAreaVisible' namespace='##targetNamespace'"
     * @generated
     */
    byte getEditorAreaVisible();

    /**
     * Sets the value of the '{@link org.cmoine.perspectiveshare.model.PerspectiveType#getEditorAreaVisible <em>Editor Area Visible</em>}' attribute.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @param value the new value of the '<em>Editor Area Visible</em>' attribute.
     * @see #isSetEditorAreaVisible()
     * @see #unsetEditorAreaVisible()
     * @see #getEditorAreaVisible()
     * @generated
     */
    void setEditorAreaVisible(byte value);

    /**
     * Unsets the value of the '{@link org.cmoine.perspectiveshare.model.PerspectiveType#getEditorAreaVisible <em>Editor Area Visible</em>}' attribute.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see #isSetEditorAreaVisible()
     * @see #getEditorAreaVisible()
     * @see #setEditorAreaVisible(byte)
     * @generated
     */
    void unsetEditorAreaVisible();

    /**
     * Returns whether the value of the '{@link org.cmoine.perspectiveshare.model.PerspectiveType#getEditorAreaVisible <em>Editor Area Visible</em>}' attribute is set.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @return whether the value of the '<em>Editor Area Visible</em>' attribute is set.
     * @see #unsetEditorAreaVisible()
     * @see #getEditorAreaVisible()
     * @see #setEditorAreaVisible(byte)
     * @generated
     */
    boolean isSetEditorAreaVisible();

    /**
     * Returns the value of the '<em><b>Fixed</b></em>' attribute.
     * <!-- begin-user-doc -->
     * <p>
     * If the meaning of the '<em>Fixed</em>' attribute isn't clear,
     * there really should be more of a description here...
     * </p>
     * <!-- end-user-doc -->
     * @return the value of the '<em>Fixed</em>' attribute.
     * @see #isSetFixed()
     * @see #unsetFixed()
     * @see #setFixed(byte)
     * @see org.cmoine.perspectiveshare.model.PerspectivesPackage#getPerspectiveType_Fixed()
     * @model unsettable="true" dataType="org.eclipse.emf.ecore.xml.type.Byte"
     *        extendedMetaData="kind='attribute' name='fixed' namespace='##targetNamespace'"
     * @generated
     */
    byte getFixed();

    /**
     * Sets the value of the '{@link org.cmoine.perspectiveshare.model.PerspectiveType#getFixed <em>Fixed</em>}' attribute.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @param value the new value of the '<em>Fixed</em>' attribute.
     * @see #isSetFixed()
     * @see #unsetFixed()
     * @see #getFixed()
     * @generated
     */
    void setFixed(byte value);

    /**
     * Unsets the value of the '{@link org.cmoine.perspectiveshare.model.PerspectiveType#getFixed <em>Fixed</em>}' attribute.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see #isSetFixed()
     * @see #getFixed()
     * @see #setFixed(byte)
     * @generated
     */
    void unsetFixed();

    /**
     * Returns whether the value of the '{@link org.cmoine.perspectiveshare.model.PerspectiveType#getFixed <em>Fixed</em>}' attribute is set.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @return whether the value of the '<em>Fixed</em>' attribute is set.
     * @see #unsetFixed()
     * @see #getFixed()
     * @see #setFixed(byte)
     * @generated
     */
    boolean isSetFixed();

    /**
     * Returns the value of the '<em><b>Version</b></em>' attribute.
     * <!-- begin-user-doc -->
     * <p>
     * If the meaning of the '<em>Version</em>' attribute isn't clear,
     * there really should be more of a description here...
     * </p>
     * <!-- end-user-doc -->
     * @return the value of the '<em>Version</em>' attribute.
     * @see #isSetVersion()
     * @see #unsetVersion()
     * @see #setVersion(float)
     * @see org.cmoine.perspectiveshare.model.PerspectivesPackage#getPerspectiveType_Version()
     * @model unsettable="true" dataType="org.eclipse.emf.ecore.xml.type.Float"
     *        extendedMetaData="kind='attribute' name='version' namespace='##targetNamespace'"
     * @generated
     */
    float getVersion();

    /**
     * Sets the value of the '{@link org.cmoine.perspectiveshare.model.PerspectiveType#getVersion <em>Version</em>}' attribute.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @param value the new value of the '<em>Version</em>' attribute.
     * @see #isSetVersion()
     * @see #unsetVersion()
     * @see #getVersion()
     * @generated
     */
    void setVersion(float value);

    /**
     * Unsets the value of the '{@link org.cmoine.perspectiveshare.model.PerspectiveType#getVersion <em>Version</em>}' attribute.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see #isSetVersion()
     * @see #getVersion()
     * @see #setVersion(float)
     * @generated
     */
    void unsetVersion();

    /**
     * Returns whether the value of the '{@link org.cmoine.perspectiveshare.model.PerspectiveType#getVersion <em>Version</em>}' attribute is set.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @return whether the value of the '<em>Version</em>' attribute is set.
     * @see #unsetVersion()
     * @see #getVersion()
     * @see #setVersion(float)
     * @generated
     */
    boolean isSetVersion();

} // PerspectiveType
